package com.prd.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.prd.dto.CustomerProjectDTO;
import com.prd.model.CustomerProjectDO;
import com.prd.util.JsonData;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 客户-项目
 * </p>
 *
 * @author o1
 * @since 2023-11-24
 */
public interface CustomerProjectService extends IService<CustomerProjectDO> {


    /**
     * 新增项目
     * @param customerProjectDTO
     * @return
     */
    JsonData uAddSimple(CustomerProjectDTO customerProjectDTO);

    JsonData addSimple(CustomerProjectDO projectDO);

    /**
     * 更新/新增项目
     * @param customerProjectDTO
     * @return
     */
    JsonData uUpdateAndAddSimple(CustomerProjectDTO customerProjectDTO);


    /**
     * 查询项目
     * @param customerNo
     * @return
     */
    JsonData uSearch(String customerNo);

    /**
     *
     * @param customerNo
     * @return
     */
    List<CustomerProjectDTO> searchForList(String customerNo);

    /**
     * 新增/编辑项目
     * @param projectDTO
     * @return
     */
    JsonData uAddAndUpdate(CustomerProjectDTO projectDTO);

    /**
     *
     * @param projectDO
     * @return
     */
    JsonData update(CustomerProjectDO projectDO);

    /**
     * 查看各种进度项目条目
     * @return
     */
    Map<String, Object> uCountProjectBusStatus();

    /**
     * 修改项目状态，成交2，失败3，取消4，取消则直接删除该项目
     * @param projectDTO
     * @return
     */
    JsonData uChangeProjectBusStatus(CustomerProjectDTO projectDTO);

    /**
     * 客户模块-客户-UNI-项目分页+筛选
     * @param page
     * @param size
     * @param projectBusStatus
     * @param keyWord
     * @return
     */
    Map<String, Object> uSearch2(int page, int size, int projectBusStatus, String keyWord);

    /**
     * 项目详情
     * @param projectId
     * @return
     */
    JsonData uInfo2(String projectId);

    void removeByProjectId(String projectId);
}
